package com.ruoyi.workbench.mapper;

import com.ruoyi.workbench.domain.WbLeafUnit;
import com.ruoyi.workbench.domain.WbWholeUnit;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 叶子单元Mapper接口
 *
 * @author hanjiafeng
 * @date 2021-02-24
 */
@Service
public interface WbLeafUnitMapper {
    /**
     * 查询叶子单元
     *
     * @param unitId 叶子单元ID
     * @return 所辖村庄
     */
    WbLeafUnit selectWbLeafUnitById(Long unitId);

    /**
     * 查询叶子单元列表
     *
     * @param wbLeafUnit 所辖村庄
     * @return 叶子单元集合
     */
    List<WbLeafUnit> selectWbLeafUnitList(WbLeafUnit wbLeafUnit);

    /**
     * 查询完全部门列表
     *
     * @param wholeUnit wholeUnit
     * @param type      type
     * @return 列表
     */
    List<WbWholeUnit> selectWbWholeUnitList(@Param("wholeUnit") WbWholeUnit wholeUnit, @Param("type") Byte type);

    /**
     * 查询子完全部门列表
     *
     * @param wholeUnit wholeUnit
     * @return 列表
     */
    List<WbWholeUnit> selectChildrenUnitList(WbWholeUnit wholeUnit);

    /**
     * 新增叶子单元
     *
     * @param wbLeafUnit 所辖村庄
     * @return 结果
     */
    int insertWbLeafUnit(WbLeafUnit wbLeafUnit);

    /**
     * 修改叶子单元
     *
     * @param wbLeafUnit 所辖村庄
     * @return 结果
     */
    int updateWbLeafUnit(WbLeafUnit wbLeafUnit);

    /**
     * 删除叶子单元
     *
     * @param unitId 叶子单元ID
     * @return 结果
     */
    int deleteWbLeafUnitById(Long unitId);

    /**
     * 批量删除叶子单元
     *
     * @param unitIds 需要删除的数据ID
     * @return 结果
     */
    int deleteWbLeafUnitByIds(String[] unitIds);
}
